#include <iostream>
#include <pthread.h>
#include <unistd.h>
#include <cerrno>
using namespace std;
// 每一个进程/线程，都有属于自己的errno

void *threadrun1(void *args)
{
    while (true)
    {
        cout << "thread-1:" << errno << endl;
        sleep(1);
    }
}

void *threadrun2(void *args)
{
    while (true)
    {
        cout << "thread-2:" << errno << endl;
        errno++;
        sleep(1);
    }
}

// 测试
int main()
{
    // 创建两个线程
    pthread_t tid1, tid2;
    pthread_create(&tid1, nullptr, threadrun1, nullptr);
    pthread_create(&tid2, nullptr, threadrun2, nullptr);

    // 等待线程
    pthread_join(tid1, nullptr);
    pthread_join(tid2, nullptr);
    return 0;
}